﻿#include "Myunordered_map.h"
#include "Myunordered_set.h"

int main()
{
	// 测试插入
	/*ouyang::Myunordered_set<int> st;
	st.Insert(1);
	st.Insert(2);
	st.Insert(3);
	st.Insert(4);

	ouyang::Myunordered_map<int, int> mp;
	mp.Insert({ 1, 1 });
	mp.Insert({ 2, 2 });
	mp.Insert({ 3, 3 });
	mp.Insert({ 4, 4 });*/

	/*vector<string> v = { "Hello", "string", "left", "right" };
	ouyang::Myunordered_set<string> st;
	for (const auto& e : v)
	{
		st.Insert(e);
	}

	ouyang::Myunordered_map<string, int> mp;
	for (const auto& e : v)
	{
		mp.Insert({ e, 1 });
	}*/

	// 测试迭代器
	/*vector<string> v = { "Hello", "string", "left", "right" };
	ouyang::Myunordered_set<string> st;
	for (const auto& e : v)
	{
		st.Insert(e);
	}
	for (auto ch : st)
	{
		cout << ch << " ";
	}
	cout << endl;

	ouyang::Myunordered_map<string, int> mp;
	for (const auto& e : v)
	{
		mp.Insert({ e, 1 });
	}
	for (auto e : mp)
	{
		cout << e.first << " " << e.second << " ";
	}*/

	// 测试map-operator[]
	//ouyang::Myunordered_map<string, string> dict;
	//dict.Insert({ "sort", "排序" });
	//dict.Insert({ "left", "左边" });
	//dict.Insert({ "right", "右边" });
	//for (auto e : dict)
	//{
	//	cout << e.first << " " << e.second << " ";
	//}
	//cout << endl;
	//dict["left"] = "左边，剩余";
	//dict["insert"] = "插入";
	//dict["string"];
	//for (auto e : dict)
	//{
	//	cout << e.first << " " << e.second << " ";
	//}

	//// 检测是否能修改
	//ouyang::Myunordered_map<string, string>::iterator it = dict.begin();
	//while (it != dict.end())
	//{
	//	// 不能修改first，可以修改second
	//	//it->first += 'x';
	//	it->second += 'x';
	//	cout << it->first << ":" << it->second << endl;
	//	++it;
	//} 
	//cout << endl;

	

	return 0;
}